<?php
class AdGalleryWidget extends CWidget
{
  public $imgList;        // array ของ path ภาพ

  public function init()
  {
    $this->_registerScript(); // ลงทะเบียน script
    parent::init();
  }

  public function run()
  {
    $scr = '
      <div class="ad-gallery">
        <div class="ad-image-wrapper"></div>
        <div class="ad-nav">
          <div class="ad-thumbs">
            <ul class="ad-thumb-list">';
              foreach($this->imgList as $img) // สร้าง Image TAG จาก array
              {
                $scr .= '<li>';
                $scr .= '<a href="' . $img['image_path'] .'">';
                $scr .= '<img src="'.$img['thumbnail_path'].'"';
                if(!empty($img['description'])) {
                  $scr .= 'alt="'.$img['description'].'"';
                }
                $scr .= ' />';
                $scr .= '</a>';
                $scr .= '</li>';
              }
    $scr .= '
          </ul>
        </div>
      </div>
    </div>';
    echo $scr; // แสดงสคลิป
    parent::run();
  }

  private function _registerScript()
  {
    $cs = Yii::app()->getClientScript(); // สร้างตัวจัดการสคลิป
    $cs->registerCoreScript('adGallery'); // ลงทะเบียน jQuery
    $basePath = Yii::getPathOfAlias('application.extensions.adGallery.assets'); // หา path ของ assets
    $baseUrl = Yii::app()->getAssetManager()->publish($basePath); // copy ทุกอย่างของ assets ไปยังเว็บแอ็บฯ
    if(!$cs->isScriptFileRegistered($baseUrl.'/js/jquery.ad-gallery.js')) // ตรวจสอบว่าลงทะเบียน plugin หรือยังถ้ายังก็ลงทะเบียน (ป้องกันการลงทะเบียนซ้ำ)
    {
      $scr = "
          $('.ad-gallery').adGallery();
      ";

      $cs->registerScriptFile($baseUrl.'/js/jquery.ad-gallery.js'); // ลงทะเบียน plugin
      $cs->registerCoreScript('jquery');
      $cs->registerScript('upd',$scr,CClientScript::POS_READY); // ลงทะเบียนสคลิป โดยกำหนดให้แสดงในส่วน HEAD ของ HTML
      $cs->registerCssFile($baseUrl.'/css/jquery.ad-gallery.css');
    }
  }
}
